Software testing refers to executing code of a software product in preset conditions to evaluate whether the executing result is obtained as expected. A software tester can simulate specific executing conditions by designing test cases, and then test the software product with the test cases. A test case may be associated with a plurality of test points in the code of the software product (for example, variables included in the code). At least one of a plurality of test points in respective different test case can be assigned with different test values.
As software becomes constantly larger and increasingly complex, more and more test points need to be considered in testing a software product, which means that the amount of test cases for the software product also increases exponentially. This exacerbates the complexity of software testing. However, the traditional solution cannot achieve a satisfactory balance between test coverage and testing efficiency.